home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / ubiquity / localechooser / post-base-installer < prev    next >
Text File  |  2009-10-28  |  3KB  |  85 lines

  1. #! /bin/sh
  2.  
  3. set -e
  4.  
  5. . /usr/share/debconf/confmodule
  6.  
  7. # Avoid locale errors when using apt-install (logical consequence
  8. # of the fact that locales is not yet installed).
  9. export IT_LANG_OVERRIDE=C
  10.  
  11.  
  12. db_get debian-installer/locale
  13. LOCALE="$RET"
  14.  
  15. # Set locale to C if it has not yet been set
  16. # This can happen during e.g. s390 installs where localechooser is not run
  17. [ "$LOCALE" ] || LOCALE="C"
  18.  
  19. if [ "$LOCALE" != "C" ]; then
  20.     db_get debian-installer/language
  21.     LANGLIST="$RET"
  22. fi
  23.  
  24. EXTRAS=""
  25. if db_get localechooser/supported-locales; then
  26.     EXTRAS="$(echo "$RET" | sed 's/,//g')"
  27. fi
  28.  
  29. LANGUAGE="${LOCALE%%_*}"
  30.  
  31. # Enable translations
  32. if [ "$LOCALE" != "C" ] || [ "$EXTRAS" ]; then
  33.     apt-install locales || true
  34. fi
  35.  
  36. # Set global locale and language, and make sure the glibc locale is
  37. # generated.
  38. DESTFILE="/target/etc/default/locale"
  39. if [ -e $DESTFILE ]; then
  40.     sed -i 's/^# LANG=$/LANG=\"'"$LOCALE"'\"/' $DESTFILE
  41.     # We set LANGUAGE only if the languagelist is a list of
  42.     # languages with alternatives. Otherwise, setting it is useless
  43.     if echo "$LANGLIST" | grep -q ":"; then
  44.         sed -i 's/^# LANGUAGE=$/LANGUAGE=\"'"$LANGLIST"'\"/' $DESTFILE
  45.     fi
  46. fi
  47. # Fallback in case the file wasn't provided by locales, or the format
  48. # changed.
  49. if [ ! -e "$DESTFILE" ] || ! grep -q '^LANG=' $DESTFILE; then
  50.     echo "LANG=\"$LOCALE\"" >> $DESTFILE
  51.     if echo "$LANGLIST" | grep -q ":"; then
  52.         echo "LANGUAGE=\"$LANGLIST\"" >> $DESTFILE
  53.     fi
  54. fi
  55.  
  56. # For languages that have no chance to be displayed at the Linux console
  57. # let's set root's environment with a non localized environment
  58. ROOTPROFILE="/target/root/.profile"
  59. # We must map the language to its "level" from languagelist
  60. LANGUAGECODE=`echo $LOCALE|cut -f1 -d_`
  61. # For language with multiple entries such as pt/pt_BR or zh_CN/zh_TW
  62. # we don't really care about the entry we will match as the level will always
  63. # be the same
  64. LEVEL=`cat /usr/lib/ubiquity/localechooser/languagelist |\
  65.     cut -f 2-3 -d\; | \
  66.     grep "$LANGUAGECODE" | \
  67.     head -n 1 | \
  68.     cut -f1 -d\;`
  69. if [ "$LEVEL" = "3" ] || [ "$LEVEL" = "4" ]; then
  70.     echo "# Installed by Debian Installer:" >>$ROOTPROFILE
  71.     echo "#  no localization for root because $LOCALE" >>$ROOTPROFILE
  72.     echo "#  cannot be properly displayed at the Linux console" >>$ROOTPROFILE
  73.     echo "LANG=C" >>$ROOTPROFILE
  74.     echo "LANGUAGE=C" >>$ROOTPROFILE
  75. fi
  76.  
  77. if [ "$LOCALE" != C ]; then
  78.     log-output -t localechooser chroot /target /usr/sbin/locale-gen "$LOCALE" || true
  79. fi
  80. if [ "$EXTRAS" ]; then
  81.     log-output -t localechooser chroot /target /usr/sbin/locale-gen $EXTRAS || true
  82. fi
  83.  
  84. exit 0
  85.